#ifndef PEDIDO_H_INCLUDED
#define PEDIDO_H_INCLUDED

#include "tipos.h"
#include "lista.h"
#include "combo.h"

class Pedido {

	public:

		Pedido();
		Pedido(const int n, const Empleado e, const Lista<Combo> cs);

		int             numeroP() const;
		Empleado        atendioP() const;
		Lista<Combo>    combosP() const;

    Energia         dificultadP() const;

		void  agregarComboP(const Combo c);
		void  anularComboP(int i);
		void  cambiarBebidaComboP(const Bebida b, int i);
		void  elMezcladitoP();

		void mostrar(std::ostream& os) const;
		void guardar(std::ostream& os) const;
		void cargar (std::istream& is);

		bool operator==(const Pedido& otroPedido) const;

		
	private:

                Lista<Combo> _combos;
                Empleado     _atendio;
                int          _numero;

		        enum {ENCABEZADO_ARCHIVO = 'P'};

				//Auxiliares
				bool seRepiteC(Combo c, int i);
				bool yaEstaAgregado(Combo c,Lista<Combo> combos);
				void modificarCombo(Combo& c, Lista<Combo> listaCombos,int i);
				Lista<Bebida> bebidasDelPedido() const;
				Lista<Hamburguesa> sanguchesDelPedido() const;
};

// Definirlo usando mostrar, para poder usar << con este tipo.
std::ostream & operator<<(std::ostream & os,const Pedido & p);

#endif // PEDIDO_H_INCLUDED
